colorscheme:
yellow
violet
bw
Prihlásenie:
Login: Heslo:

Problem statement: zenit14skc

C: Paritný škrek
15 bodov Časový limit: 100 ms

Väčšina zvierat na rozdiel od ľudí nepoužíva verbálnu komunikáciu. To ale neznamená, že by pomocou zvukov vôbec nekomunikovali. Opak je pravdou, zvieratká majú veľmi prepracované komunikačné mechanizmy. Na efektívne komunikovanie stačí, aby príslušný tvor vedel vylúdiť dva rôzne zvuky. V tejto úlohe budeme používať na označenie prvého typu škreku 0 a druhého typu škreku 1. Správa sa odovzdáva postupnosťou týchto škrekov.

Pri prenose správy vzduchom môže občas prísť k chybe vplyvom externého prostredia (napríklad škrek zanikne v pozadí iného hlasnejšieho zvuku). Vtedy sa k slovu dostávajú rôzne metódy, ako chyby napraviť, alebo aspoň zistiť ich prítomnosť. Jednou z najjednoduchších možností je použiť takzvaný paritný škrek.

Budeme hľadať chybu, pri ktorej sa škrek 0 vymení za škrek 1 alebo opačne. Nebudeme sa teda zaoberať úplným vynechaním niektorého zo škrekov alebo pridaním nového – budeme predpokladať, že sa nič také nestalo.

Každá postupnosť škrekov obsahuje párny alebo nepárny počet jednotiek. Ak je tento počet párny, odosielateľ pridá na koniec ešte jednu nulu. V opačnom prípade odosielateľ pridá na koniec správy jednotku. Napríklad, ak je reťazec 01100101, potom je počet jednotiek 4 a teda párny. Odosielateľ teda pridá na koniec 0 a celá vyškriekaná správa bude 011001010.

Prijímateľ si spočíta počet jednotiek v správe, nepočítajúc posledný škrek. Ak počet jednotiek v tejto správe nezodpovedá poslednému symbolu, znamená to, že k chybe určite prišlo. Touto chybou mohla byť zmena niektorého zo symbolov správy, ale aj, že po ceste zmenil samotný škrek parity. V tejto úlohe budeme implementovať kontrolu validity správy na strane prijímateľa.

Všimnime si ešte, že ak sa zmenia počas prenosu dva symboly, potom bude určite škrek parity sedieť s počtom jednotiek v správe. Toto ale v tejto úlohe zanedbáme a budeme predpokladať, že ak prišlo k chybe, bola najviac jedna. Ak by sme v praxi chceli kontrolovať možnú prítomnosť viacerých chýb, museli by sme použiť sofistikovanejšiu metódu, napríklad CRC škreky.

Formát vstupu a výstupu

Vstup pozostáva z jediného riadku, na ktorom je jeden reťazec zo znakov 0 a 1. Tento reťazec má dĺžku aspoň 2 a najviac 100. Na výstup vypíšte slovo Spravna alebo Nespravna podľa toho, či paritný škrek zodpovedá obsahu správy. Nezabudnite za slovom vypísať práve jeden znak konca riadka (pozrite si záložku Pomoc na stránke súťaže).

Príklady

Input:

0110101

Output:

Spravna

Input:

10

Output:

Nespravna

(C) MišoF, Zemčo. 2007 - 2013